﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

using IEQ_Superintendencia.Domain.Control;
using IEQ_Superintendencia.Services.Persistence;

namespace IEQ_Superintendencia.User_Interface
{
    public partial class UICadCulto : UserControl
    {

        public UICadCulto()
        {
            InitializeComponent();
            preencheCbIgreja();
            preencheCbPastor();
            tabCtrlCulto.Enabled = false;
        }

        protected void preencheCbIgreja()
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJADataTable dtIgreja = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJADataTable();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJATableAdapter dsIgreja = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJATableAdapter();

            dtIgreja = dsIgreja.GetData();
            cbIgreja.DataSource = dtIgreja;
            cbIgreja.DisplayMember = "IGREJA_NOME";
            cbIgreja.ValueMember = "IGREJA_ID";
            tbIgrejaID.Text = cbIgreja.SelectedValue.ToString();
        }

        protected void preencheCbPastor()
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.PASTORDataTable dtPastor = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.PASTORDataTable();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.PASTORTableAdapter dsPastor = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.PASTORTableAdapter();

            dtPastor= dsPastor.GetData();
            cbPastor.DataSource = dtPastor;
            cbPastor.DisplayMember = "PASTOR_NOME";
            cbPastor.ValueMember = "PASTOR_ID";    
        }

        private void cULTOBindingNavigatorSaveItem_Click_1(object sender, EventArgs e)
        {
            this.Validate();
            try
            {            
                this.cULTOBindingSource.EndEdit();
                if (this.tableAdapterManager.UpdateAll(this.dsIEQSuper) > 0)
                {
                    MessageBox.Show("Cadastro realizado com sucesso");

                    tbDizCultoID.Text = tbCultoID.Text;
                    tbVisitasCultoID.Text = tbCultoID.Text;
                    tbPastPresCultoID.Text = tbCultoID.Text;

                    gbDizimista.Enabled = true;
                    gbListaDizimista.Enabled = true;

                    gbPastorPresente.Enabled = true;
                    gbListaPastPres.Enabled = true;

                    gbVisitaEspecial.Enabled = true;
                    gbListaVisitasEsp.Enabled = true;
                }
                else
                    MessageBox.Show("Não foi possível realizar o cadastro");
                
            } catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace.ToString());
            }
        }

        private void cbIgreja_SelectedIndexChanged(object sender, EventArgs e)
        {
            tbIgrejaID.Text = cbIgreja.SelectedValue.ToString();
        }

        private void cbPastor_SelectedIndexChanged(object sender, EventArgs e)
        {
            tbPastor.Text = cbPastor.SelectedValue.ToString();
        }

        protected void LimpaDadosDizimistas()
        {            
            tbDizNome.ResetText();
            tbDizNumBanco.ResetText();
            tbDizNumCheque.ResetText();
            tbDizValor.ResetText();
            lblDizNomeObr.Visible = false;
            lblDizValorObr.Visible = false;
        }

        private void btnAddDizimista_Click(object sender, EventArgs e)
        {
            bool cadDizimistaValido = true;            
            string[] dadosDizimistas = {tbCultoID.Text, tbDizNome.Text, tbDizNumBanco.Text, tbDizNumCheque.Text, tbDizValor.Text };
            
            if (tbCultoID.Text == string.Empty)            
                cadDizimistaValido = false;
            
            if (tbDizNome.Text == string.Empty)
            {
                lblDizNomeObr.Visible = true;
                cadDizimistaValido = false;
            }
            
            if (tbDizValor.Text == string.Empty)
            {
                lblDizValorObr.Visible = false;
                cadDizimistaValido = false;
            }

            if (cadDizimistaValido)
            {
                if (!ControlCulto.InserirDizimista(dadosDizimistas))
                    MessageBox.Show("Não foi possível inserir");
                else
                {
                    LimpaDadosDizimistas();
                    dgvDizimistas.Rows.Add(dadosDizimistas);
                }
            }

            else
            {
                MessageBox.Show("Os campos com * são obrigatórios");
            }
        }

        private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
        {
            tabCtrlCulto.Enabled = true;
            tbIgrejaID.Text = cbIgreja.SelectedValue.ToString();
        }

        private void maskedHoraCulto_Changed(object sender, EventArgs e)
        {
            DateTime horaCulto,hour;
            if (!DateTime.TryParse(tbHoraCulto.Text, out horaCulto))
                MessageBox.Show("Hora inválida");

            hour = new DateTime(1900, 01, 01, horaCulto.Hour, horaCulto.Minute, horaCulto.Second);

            // tbHoraCulto.Text = hour.ToShortTimeString();

        }

        private void btnAddPastPres_Click(object sender, EventArgs e)
        {
            
            string[] pastor_presente = { tbCultoID.Text, tbPastor.Text };            
            string[] gv_pastor = { tbPastor.Text, cbPastor.Text };

            if (!ControlCulto.InserirPastoresPresentes(pastor_presente))
                MessageBox.Show("Não foi possível inserir");
                else            
                    gvPastores.Rows.Add(gv_pastor);         

        }

        private void btnAddVisitaEspecial_Click(object sender, EventArgs e)
        {
            string[] visita_especial = { tbVisitasCultoID.Text, tbVisitaEspecial.Text };

            if (!ControlCulto.InserirVisitaEspecial(visita_especial))
                MessageBox.Show("Não foi possível inserir");
            else
                gvVisitas.Rows.Add(visita_especial);   
        }

        
    }
}
